<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>class Net::IMAP::BodyTypeAttachment - net-imap: Ruby Standard Library Documentation</title>


<script src="../../js/navigation.js" defer></script>
<script src="../../js/search.js" defer></script>
<script src="../../js/search_index.js" defer></script>
<script src="../../js/searcher.js" defer></script>
<script src="../../js/darkfish.js" defer></script>

<script src="../../js/jquery-3.2.0.min.js"></script>

<script src="../../js/vue.min.js"></script>
<script src="../../js/js.cookie.min.js"></script>

<link href="../../css/fonts.css" rel="stylesheet">
<link id='rdoccss' href="../../css/rdoc.css" rel="stylesheet">
<link href="../../css/carbon17.css" rel="stylesheet">

<script type="text/javascript">
  var rdoc_rel_prefix = "../../";
  var index_rel_prefix = "../../";
  var darkModeCsseHref = "../../css/rdoc-dm.css"
  var defaultModeCssHref = "../../css/rdoc.css"
  // var cssDarkmode = Cookies.get('darkmode');
  
  if( Cookies.get("darkmode") == "true") {
	$('#rdoccss').attr("href", darkModeCsseHref);
}

//  https://cssdeck.com/blog/simple-jquery-stylesheet-switcher/

document.write('<style type="text/css">body{display:none}</style>');

</script>


</head>
<body id="top" role="document" class="class">
  <!-- this is class.html -->

  <div id='actionbar' >
    <div class='wrapper mdiv'>
      <ul class='grids g0'></ul>
    </div> 
    <!-- VERSION HEADER for 3.3.0.preview2 NOT FOUND -->
  </div> <!-- end action bar -->

  <div class='wrapper hdiv'>

    


    <nav id='vapp' role="navigation">
    <div id="project-navigation">
      <div id="home-section" role="region" title="Quick navigation" class="nav-section">
  <h2><a href="../../index.html" rel="home">Home</a></h2>

  <div id="table-of-contents-navigation"  >
    <a href="../../table_of_contents.html#pages">Pages</a>
    <a href="../../table_of_contents.html#classes">Classes</a>
    <a href="../../table_of_contents.html#methods">Methods</a>
  </div>
</div>

      <div id="search-section" role="search" class="project-section initially-hidden">
  <form action="#" method="get" accept-charset="utf-8">
    <div id="search-field-wrapper">
      <input id="search-field" role="combobox" aria-label="Search"
             aria-autocomplete="list" aria-controls="search-results"
             type="text" name="search" placeholder="Search" spellcheck="false"
             title="Type to search, Up and Down to navigate, Enter to load">
    </div>

    <ul id="search-results" aria-label="Search Results"
        aria-busy="false" aria-expanded="false"
        aria-atomic="false" class="initially-hidden"></ul>
  </form>
</div>

    </div>


    

    <button id='toggleThing' @click="toggleNav()" >Show/hide navigation</button>
    <div :class="isOpen ? 'block' : 'hidden' " id='toggleMe'>
      <div id="class-metadata">
        
        
<div id="parent-class-section" class="nav-section">
  <h3>Parent</h3>

  <p class="link">Struct.new(:dsp_type, :_unused_, :param)
</div>

        
<div id="includes-section" class="nav-section">
  <h3>Included Modules</h3>

  <ul class="link-list">
    <li><a class="include" href="BodyStructure.html">Net::IMAP::BodyStructure</a>
  </ul>
</div>

        
        
<!-- Method Quickref -->
<div id="method-list-section" class="nav-section">
  <h3>Methods</h3>

  <ul class="link-list" role="directory">
    <li ><a href="#method-i-dsp_type">#dsp_type</a>
    <li ><a href="#method-i-media_type">#media_type</a>
    <li ><a href="#method-i-multipart-3F">#multipart?</a>
    <li ><a href="#method-i-param">#param</a>
    <li ><a href="#method-i-subtype">#subtype</a>
  </ul>
</div>

      </div>
     </div>
    </nav>


    <div id='extraz'><div class='adzbox-index'  >
      
     </div>         
    </div>

    <main role="main" aria-labelledby="class-Net::IMAP::BodyTypeAttachment">
    <h1 id="class-Net::IMAP::BodyTypeAttachment" class="class">
      class Net::IMAP::BodyTypeAttachment
    </h1>

    <section class="description">
    
<h3 id="class-Net::IMAP::BodyTypeAttachment-label-WARNING">WARNING<span><a href="#class-Net::IMAP::BodyTypeAttachment-label-WARNING">&para;</a> <a href="#top">&uarr;</a></span></h3>

<p><a href="BodyTypeAttachment.html"><code>BodyTypeAttachment</code></a> represents a <code>body-fld-dsp</code> that is incorrectly in a position where the IMAP4rev1 grammar expects a nested <code>body</code> structure.</p>

<blockquote>
<p>IMAP body structures are parenthesized lists and assign their fields positionally, so missing fields change the intepretation of all following fields.  Buggy IMAP servers sometimes leave fields missing rather than empty, which inevitably confuses parsers. <a href="BodyTypeAttachment.html"><code>BodyTypeAttachment</code></a> was an attempt to parse a common type of buggy body structure without crashing.</p>

<p>Currently, when <a href="ResponseParser.html"><code>Net::IMAP::ResponseParser</code></a> sees “attachment” as the first entry in a <code>body-type-1part</code>, which is where the MIME type should be, it uses <a href="BodyTypeAttachment.html"><code>BodyTypeAttachment</code></a> to capture the rest.  “attachment” is not a valid MIME type, but <em>is</em> a common <code>Content-Disposition</code>.  What might have happened was that buggy server could not parse the message (which might have been incorrectly formatted) and output a <code>body-type-dsp</code> where a <a href="ResponseParser.html"><code>Net::IMAP::ResponseParser</code></a> expected to see a <code>body</code>.</p>
</blockquote>

<p>A future release will replace this, probably with a <a href="ContentDisposition.html"><code>ContentDisposition</code></a> nested inside another body structure object, maybe <a href="BodyTypeBasic.html"><code>BodyTypeBasic</code></a>, or perhaps a new body structure class that represents any unparsable body structure.</p>

    </section>

      <section id="5Buntitled-5D" class="documentation-section">





                <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
                <header>
                <h3>Public Instance Methods</h3>
                </header>

                  <div id="method-i-dsp_type" class="method-detail ">
                      <div class="method-heading">
                        <span class="method-callseq">
                          dsp_type &rarr; string
                              </span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Returns the content disposition type, as defined by [<a href="https://tools.ietf.org/html/rfc2183">DISPOSITION</a>].</p>

                              <div class="method-source-code" id="dsp_type-source">
            <pre><span class="ruby-comment"># File net-imap-0.3.7/lib/net/imap/response_data.rb, line 1174</span>
      </pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-media_type" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">media_type</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>*invalid for BodyTypeAttachment*</p>

                              <div class="method-source-code" id="media_type-source">
            <pre><span class="ruby-comment"># File net-imap-0.3.7/lib/net/imap/response_data.rb, line 1160</span>
      <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">media_type</span>
        <span class="ruby-identifier">warn</span>(<span class="ruby-identifier">&lt;&lt;~WARN</span>, <span class="ruby-value">uplevel:</span> <span class="ruby-value">1</span>)
<span class="ruby-value">          BodyTypeAttachment#media_type is obsolete.  Use dsp_type instead.
</span><span class="ruby-identifier">        WARN</span>
        <span class="ruby-identifier">dsp_type</span>
      <span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-multipart-3F" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">multipart?</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              

                              <div class="method-source-code" id="multipart-3F-source">
            <pre><span class="ruby-comment"># File net-imap-0.3.7/lib/net/imap/response_data.rb, line 1188</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">multipart?</span>
  <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-param" class="method-detail ">
                      <div class="method-heading">
                        <span class="method-callseq">
                          param &rarr; hash
                              </span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>Returns a hash representing parameters of the Content-Disposition field, as defined by [<a href="https://tools.ietf.org/html/rfc2183">DISPOSITION</a>].</p>

                              <div class="method-source-code" id="param-source">
            <pre><span class="ruby-comment"># File net-imap-0.3.7/lib/net/imap/response_data.rb, line 1181</span>
      </pre>
                              </div>
                            </div>


                          </div>

                  <div id="method-i-subtype" class="method-detail ">
                            <div class="method-heading">
                              <span class="method-name">subtype</span><span
                                class="method-args">()</span>
                              <span class="method-click-advice">click to toggle source</span>
                            </div>

                            <div class="method-description">
                              <p>*invalid for BodyTypeAttachment*</p>

                              <div class="method-source-code" id="subtype-source">
            <pre><span class="ruby-comment"># File net-imap-0.3.7/lib/net/imap/response_data.rb, line 1168</span>
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">subtype</span>
  <span class="ruby-identifier">warn</span>(<span class="ruby-string">&quot;BodyTypeAttachment#subtype is obsolete.\n&quot;</span>, <span class="ruby-value">uplevel:</span> <span class="ruby-value">1</span>)
  <span class="ruby-keyword">nil</span>
<span class="ruby-keyword">end</span></pre>
                              </div>
                            </div>


                          </div>

                          </section>

              </section>
              </main>



            </div>  <!--  class='wrapper hdiv' -->


<footer id="validator-badges" role="contentinfo">
<p><a href="https://validator.w3.org/check/referer">Validate</a></p>
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.4.0.</p>
<p>Based on <a href="https://github.com/ged/darkfish/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.</p>

  
    <p><p><a href="https://ruby-doc.org">Ruby-doc.org</a> is provided by <a href="https://jamesbritt.com">James Britt</a> and <a href="https://neurogami.com">Neurogami</a>.</p><p><a href="https://jamesbritt.bandcamp.com/">Maximum R+D</a>.  </p>
</p>
  
  </footer>

<script type="text/javascript">


  let ads  = $("#carbonads-container").children().detach();


  function swapMode() {
    var cookieName = 'darkmode';
    var cssDarkmode = Cookies.get(cookieName);
    console.log("***** swapMode! " + cssDarkmode + " *****");


    if (cssDarkmode == "true") {
      console.log("We have dark mode, set the css to light ...");
      $('#rdoccss').attr("href", defaultModeCssHref);
      $('#cssSelect').text("Dark mode");
      cssDarkmode = "false";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    } else {
      console.log("We not have dark mode, set the css to dark ...");
      $('#rdoccss').attr("href", darkModeCsseHref);
      $('#cssSelect').text("Light mode");
      cssDarkmode = "true";
      console.log("swapMode! Now set cookie to " + cssDarkmode);
      Cookies.set(cookieName, cssDarkmode);

    }

    console.log("  --------------- ");
  }


const vueCssApp = new Vue({
el: '#menubar',
data: {
isDark: false
},
methods: {
toggleClass: function(event){
this.isDark = !this.isDark;
}
}
})

const vueApp = new Vue({
el: '#vapp',
data: { 
isOpen: true
},

mounted() {
this.handleResize();
this.manage_mob_classes();
window.addEventListener('resize', this.handleResize)
//this.isOpen !=  (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},
destroyed() {
window.removeEventListener('resize', this.handleResize)
},
created() {
//manage_mob_classes();
},

methods : {
isMobile() {
  return (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent));
},

  handleResize() {
    if (!this.isMobile()) {
      this.isOpen = window.innerWidth > 800;
    }
  },

  manage_mob_classes() {
    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
      $("nav").addClass("mob_nav");
      $("main").addClass("mob_main");
      $("#extraz").addClass("mob_extraz");
      $("#carbonads-container").addClass("mob_carbonads-container");
      this.isOpen  = false;
    } else {
      $("nav").removeClass("mob_nav") 
        $("main").removeClass("mob_main");
      $("#extraz").removeClass("mob_extraz");
      $("#carbonads-container").removeClass("mob_carbonads-container");
      this.isOpen  = true;
    }
  },

  toggleNav() {
    this.isOpen =! this.isOpen ;
    // alert("Toggle nav!");
    console.log("toggleNav() click: " + this.isOpen );
  }
}
})

$("#carbonads-container").append(ads);


$(function() {

    var darkmode = Cookies.get("darkmode");
    console.log("Document ready: " + darkmode);

    if ( darkmode  == "true" ) {
      $('#cssSelect').text("Light mode");
    } else {
      $('#cssSelect').text("Dark mode");
     }

    $('body').css('display','block');
    });

</script>

    
  </body> 
</html>

